home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / IPOLY_KG.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-11-04  |  3.1 KB  |  94 lines

  1. Program Ipoly_Keygen_By_The_Q;
  2. Const HexDig:Set of char = ['0'..'9','A'..'F'];
  3. Var X,Y,Z,T:REAL;
  4.     A1,A2,A3,A4,
  5.     B1,B2,B3,B4,
  6.     C1,C2,C3,C4,
  7.     D1,D2,D3,D4,
  8.     E1,E2,E3,E4:REAL;
  9.     dGEN,dX,dY,dZ,dT:REAL;
  10.     S:String;
  11.     I:byte;
  12.  
  13. Function CharToDigit(Ch:Char):REAL;
  14. Begin
  15.         Ch:=Chr(Ord(Ch)-$30);
  16.         If Ord(Ch)>$10 then Ch:=Chr(Ord(Ch)-7);
  17.         CharToDigit:=Ord(Ch);
  18. End;
  19.  
  20. Function Power (Base,P:real):Real;
  21. Begin
  22.     Power:=Int(Exp(P*Ln(Base)));
  23. End;
  24.  
  25. Function Matrix_3x3 (F1,G1,H1,F2,G2,H2,F3,G3,H3:REAL):Real;
  26. Begin
  27.     Matrix_3x3:=(F1*G2*H3 + G1*H2*F3 + H1*F2*G3)-
  28.                 (G1*F2*H3 + F1*H2*G3 + H1*G2*F3);
  29. End;
  30.  
  31.  
  32. Begin
  33.      Writeln;Writeln('───═════════════════════───');
  34.      Writeln(' ■ Ipoly KeyGen By The+Q ■ ');Writeln;
  35.      Write('Enter Your Licence Number : ');Readln(S);
  36.      If not (length(S)=8) then begin
  37.         Writeln('Error! licence number should be 8 hex-digits long. Try Again!');
  38.         halt(1);
  39.         End;
  40.      For i:=1 to length(S) do S[i]:=UpCase(S[i]);
  41.      For i:=1 to length(S) do
  42.         If not (S[i] in HexDig) then Begin
  43.            Writeln('Error! licence number has invalid chars.');Halt(1);End;
  44.  
  45.      A1:=CharToDigit(S[1]);
  46.      A2:=CharToDigit(S[2]);
  47.      A3:=CharToDigit(S[3]);
  48.      A4:=CharToDigit(S[4]);
  49.      E1:=CharToDigit(S[5]);
  50.      E2:=CharToDigit(S[6]);
  51.      E3:=CharToDigit(S[7]);
  52.      E4:=CharToDigit(S[8]);
  53.  
  54.      B1:=Power(A1,2) ; B2:=Power(A2,2) ; B3:=Power(A3,2) ; B4:=Power(A4,2);
  55.      C1:=Power(A1,3) ; C2:=Power(A2,3) ; C3:=Power(A3,3) ; C4:=Power(A4,3);
  56.      D1:=Power(A1,4) ; D2:=Power(A2,4) ; D3:=Power(A3,4) ; D4:=Power(A4,4);
  57.  
  58.      dGEN:= A1*(Matrix_3x3(B2,C2,D2, B3,C3,D3, B4,C4,D4))
  59.             - A2*(Matrix_3x3(B1,C1,D1, B3,C3,D3, B4,C4,D4))
  60.             + A3*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B4,C4,D4))
  61.             - A4*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B3,C3,D3));
  62.  
  63.      dX  := E1*(Matrix_3x3(B2,C2,D2, B3,C3,D3, B4,C4,D4))
  64.             - E2*(Matrix_3x3(B1,C1,D1, B3,C3,D3, B4,C4,D4))
  65.             + E3*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B4,C4,D4))
  66.             - E4*(Matrix_3x3(B1,C1,D1, B2,C2,D2, B3,C3,D3));
  67.      X:=dX / dGEN;
  68.  
  69.      dY  := A1*(Matrix_3x3(E2,C2,D2, E3,C3,D3, E4,C4,D4))
  70.             - A2*(Matrix_3x3(E1,C1,D1, E3,C3,D3, E4,C4,D4))
  71.             + A3*(Matrix_3x3(E1,C1,D1, E2,C2,D2, E4,C4,D4))
  72.             - A4*(Matrix_3x3(E1,C1,D1, E2,C2,D2, E3,C3,D3));
  73.      Y:=dY / dGEN;
  74.  
  75.      dZ  := A1*(Matrix_3x3(B2,E2,D2, B3,E3,D3, B4,E4,D4))
  76.             - A2*(Matrix_3x3(B1,E1,D1, B3,E3,D3, B4,E4,D4))
  77.             + A3*(Matrix_3x3(B1,E1,D1, B2,E2,D2, B4,E4,D4))
  78.             - A4*(Matrix_3x3(B1,E1,D1, B2,E2,D2, B3,E3,D3));
  79.      Z:=dZ / dGEN;
  80.  
  81.      dT  :=   A1*(Matrix_3x3(B2,C2,E2, B3,C3,E3, B4,C4,E4))
  82.             - A2*(Matrix_3x3(B1,C1,E1, B3,C3,E3, B4,C4,E4))
  83.             + A3*(Matrix_3x3(B1,C1,E1, B2,C2,E2, B4,C4,E4))
  84.             - A4*(Matrix_3x3(B1,C1,E1, B2,C2,E2, B3,C3,E3));
  85.      T:=dT / dGEN;
  86.  
  87.      Writeln('Key #1: ',(X*100000):10:0);
  88.      Writeln('Key #2: ',(Y*100000):10:0);
  89.      Writeln('Key #3: ',(Z*100000):10:0);
  90.      Writeln('Key #4: ',(T*100000):10:0);
  91.      Writeln('Key #5,#6,#7,#8: 100000');
  92.  
  93. End.
  94.